Isumaginninnermut tunngasut
Suliffeqanngikkallarnermi aammalu ernereernermi ikiorsiissutit
SOX006_raw <-
statgl_url("SOX006", lang = language) |>
statgl_fetch(
municipality = px_all(),
unit = px_all(),
type = px_all(),
time = px_top(),
.col_code = T
) |>
as_tibble()
SOX006 <-
SOX006_raw |>
mutate(municipality = municipality |> fct_inorder(),
type = type |> fct_inorder()) |>
spread(type, value) |>
arrange(unit)
SOX006 |>
select(-c(2, 3)) |>
rename(" " = 1) |>
statgl_table() |>
pack_rows(index = table(SOX006[[3]])) |>
pack_rows(index = table(SOX006[2])) |>
row_spec(c(1, 7), bold = T)
|
Suliffeqanngikkallarnermi ikiorsiissutit katillugit
|
Suliffeqannginnermi suliffeqanngikkallarnermi ikiorsiissutit
|
Angerlartitaanermi suliffeqanngikkallarnermi ikiorsiissutit
|
Napparsimanermi suliffeqanngikkallarnermi ikiorsiissutit
|
Ernereernermi ullormusiat
|
2023
|
Amerlassusii
|
Katillugit
|
1.821
|
585
|
384
|
1.053
|
719
|
Kommune Kujalleq
|
292
|
158
|
3
|
152
|
84
|
Kommuneqarfik Sermersooq
|
362
|
141
|
2
|
232
|
228
|
Qeqqata Kommunia
|
349
|
108
|
110
|
196
|
120
|
Kommune Qeqertalik
|
389
|
127
|
121
|
184
|
104
|
Avannaata Kommunia
|
429
|
51
|
148
|
289
|
183
|
Aningaasat amerlassusii (1000 DKK)
|
Katillugit
|
25.238
|
9.119
|
3.603
|
12.517
|
31.775
|
Kommune Kujalleq
|
4.718
|
2.453
|
9
|
2.256
|
3.406
|
Kommuneqarfik Sermersooq
|
6.340
|
2.836
|
20
|
3.484
|
10.182
|
Qeqqata Kommunia
|
3.622
|
1.140
|
579
|
1.903
|
5.397
|
Kommune Qeqertalik
|
5.907
|
2.197
|
1.624
|
2.086
|
4.977
|
Avannaata Kommunia
|
4.652
|
493
|
1.371
|
2.788
|
7.812
|
Se Statistikbankens tabel: SOX006
Ilaqutariit paarsisartut
SOXPV004_raw <-
statgl_url("SOXPV004", lang = language) %>%
statgl_fetch(
municipality = px_all(),
year = px_top(1),
.col_code = TRUE
) %>%
as_tibble()
SOXPV004_raw %>%
mutate(municipality = municipality %>% fct_inorder()) %>%
spread(year, value) %>%
rename(" " = 1) %>%
statgl_table() %>%
row_spec(1, bold = TRUE)
|
2024
|
Katillugit
|
401
|
Kommuneqarfik Sermersooq
|
164
|
Avannaata Kommunia
|
55
|
Kommune Qeqertalik
|
45
|
Qeqqata Kommunia
|
74
|
Kommune Kujalleq
|
63
|
Se Statistikbankens tabel: SOXPV004
Pisortanit ikiorsiissutit
SOX004_raw <-
statgl_url("SOX004", lang = language) %>%
statgl_fetch(
municipality = px_all(),
unit = px_all(),
type = 10,
time = px_top(),
.col_code = TRUE
) %>%
as_tibble()
SOX004 <-
SOX004_raw %>%
mutate(municipality = municipality %>% fct_inorder()) %>%
spread(unit, value) %>%
unite(combi, type, time, sep = ", ")
SOX004 %>%
select(-combi) %>%
rename(" " = 1) %>%
statgl_table() %>%
pack_rows(index = SOX004[["combi"]] %>% table()) %>%
row_spec(1, bold = TRUE)
|
Amerlassusii
|
Aningaasat amerlassusii (1000 DKK)
|
Pisortanit ikiorsiissutit katillugit, 2023
|
Katillugit
|
3.022
|
48.781
|
Kommune Kujalleq
|
662
|
10.194
|
Kommuneqarfik Sermersooq
|
945
|
18.905
|
Qeqqata Kommunia
|
501
|
8.854
|
Kommune Qeqertalik
|
454
|
6.339
|
Avannaata Kommunia
|
460
|
4.488
|
Se Statistikbankens tabel: SOX004
Soraarnerussutisiallit
SOXPEN1_raw <-
statgl_url("SOXPEN1", lang = language) %>%
statgl_fetch(
gender = px_all(),
payment = px_all(),
time = px_top(),
.col_code = TRUE
) %>%
as_tibble()
SOXPEN1 <-
SOXPEN1_raw %>%
mutate(
gender = gender %>% fct_inorder(),
payment = payment %>% fct_inorder()
) %>%
spread(gender, value)
SOXPEN1 %>%
select(-time) %>%
rename(" " = 1) %>%
statgl_table() %>%
pack_rows(index = SOXPEN1[["time"]] %>% table()) %>%
row_spec(1, bold = TRUE)
|
Katillugit
|
Angutit
|
Arnat
|
2024
|
Katillugit
|
6.718
|
3.459
|
3.259
|
Utoqqalinermi soraarnerussutisiat
|
4.207
|
2.175
|
2.032
|
Siusinaarluni soraarnerussutisiat
|
2.511
|
1.284
|
1.227
|
Se Statistikbankens tabel: SOXPEN1
Isumaginninnikkut inissiisarfiit
SOXFO10_raw <-
statgl_url("SOXFO10", lang = language) %>%
statgl_fetch(
"age group" = px_all(),
gender = px_all(),
time = px_top(1),
.col_code = TRUE
) %>%
as_tibble()
SOXFO10 <-
SOXFO10_raw %>%
filter(time == max(time)) %>%
mutate(
`age group` = `age group` %>% fct_inorder(),
gender = gender %>% fct_inorder()
) %>%
spread(gender, value)
SOXFO10 %>%
select(-time) %>%
rename(" " = 1) %>%
statgl_table() %>%
pack_rows(index = SOXFO10[["time"]] %>% table()) %>%
row_spec(1, bold = TRUE)
|
Katillugit
|
Angut
|
Arnaq
|
2018
|
Katillugit
|
1.131
|
706
|
425
|
0-17 -inik ukiullit
|
199
|
138
|
61
|
18-30 -nik ukiullit
|
292
|
189
|
103
|
31-40 -nik ukiullit
|
175
|
107
|
68
|
41-50 -inik ukiullit
|
143
|
86
|
57
|
51-60 -inik ukiullit
|
238
|
137
|
101
|
61+ -inik ukiullit
|
84
|
49
|
35
|
Se Statistikbankens tabel: SOXFO10
Tapiliussatut ikiorsiissutit
SOXBS02_raw <-
statgl_url("SOXBS02", lang = language) |>
statgl_fetch(
district = px_all(),
unit = "Antal",
time = px_top(7),
.col_code = T
) |>
as_tibble()
SOXBS02 <-
SOXBS02_raw |>
spread(time, value)
SOXBS02 |>
select(-unit) |>
rename(" " = 1) |>
statgl_table() |>
pack_rows(index = table(SOXBS02["unit"])) |>
row_spec(1, bold = T)
|
2018
|
2019
|
2020
|
2021
|
2022
|
2023
|
2024
|
Amerlassusaat
|
Ilulissat
|
374
|
361
|
359
|
317
|
291
|
262
|
288
|
Ittoqotoormiit
|
23
|
32
|
22
|
19
|
25
|
17
|
15
|
Kangaatsiaq
|
37
|
35
|
28
|
35
|
32
|
27
|
28
|
Maniitsoq
|
316
|
302
|
293
|
283
|
279
|
265
|
270
|
Nanortalik
|
144
|
135
|
105
|
111
|
115
|
90
|
93
|
Narsaq
|
179
|
172
|
172
|
154
|
162
|
143
|
138
|
Nuna tamakkerlugu
|
3.941
|
3.822
|
3.729
|
3.653
|
3.527
|
3.326
|
3.423
|
Nuuk
|
1.015
|
1.015
|
1.023
|
1.000
|
980
|
958
|
1.009
|
Paamiut
|
193
|
186
|
183
|
176
|
158
|
155
|
153
|
Qaqortoq
|
306
|
302
|
279
|
281
|
309
|
267
|
260
|
Qasigiannguit
|
126
|
112
|
106
|
108
|
93
|
78
|
84
|
Qeqertarsuaq
|
72
|
62
|
60
|
68
|
62
|
65
|
57
|
Qaanaaq
|
54
|
51
|
47
|
43
|
43
|
41
|
46
|
Sisimiut
|
533
|
499
|
509
|
510
|
495
|
485
|
521
|
Tasiilaq
|
153
|
153
|
142
|
144
|
135
|
140
|
132
|
Upernavik
|
45
|
38
|
26
|
36
|
29
|
27
|
33
|
Uummannaq
|
73
|
71
|
69
|
68
|
52
|
47
|
47
|
Aasiaat
|
298
|
296
|
306
|
300
|
267
|
259
|
249
|
Se Statistikbankens tabel: SOXBS02
Aningaasaatikilliortut
SODOU01_raw <-
statgl_url("SOXOU01", lang = language) %>%
statgl_fetch(
"inventory variable" = c("Andel50", "Andel60"),
gender = px_all(),
year = px_top(1),
.col_code = TRUE
) %>%
as_tibble()
SODOU01 <-
SODOU01_raw %>%
mutate(`inventory variable` = `inventory variable` %>% fct_inorder()) %>%
arrange(desc(gender)) %>%
mutate(gender = gender %>% fct_inorder() %>% fct_rev()) %>%
spread(gender, value)
SODOU01 %>%
select(-year) %>%
rename(" " = 1) %>%
statgl_table() %>%
pack_rows(index = SODOU01[["year"]] %>% table())
|
Angutit
|
Arnat
|
Katillugit
|
2023
|
50%-imik ataatsisut agguaqatigiissinnerini amerlassusaat
|
5,0
|
4,1
|
4,6
|
60%-imik ataatsisut agguaqatigiissinnerini amerlassusaat
|
8,7
|
7,8
|
8,2
|
Se Statistikbankens tabel: SOXOU01
Sidst opdateret: 22. juni
2025
LS0tDQpwYXJhbXM6DQogIGxhbmc6ICJkYSINCm91dHB1dDoNCiAgc3RhdGdsOjpzdGF0Z2xfcmVwb3J0Og0KICAgIGNvZGVfZG93bmxvYWQ6IHRydWUNCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUNCmVkaXRvcl9vcHRpb25zOiANCiAgY2h1bmtfb3V0cHV0X3R5cGU6IGNvbnNvbGUNCi0tLQ0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCg0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KA0KCWVjaG8gICAgPSBUUlVFLA0KCW1lc3NhZ2UgPSBGQUxTRSwNCgl3YXJuaW5nID0gRkFMU0UsDQoJY2xhc3Mub3V0cHV0ID0gInNjcm9sbC0xMDAiDQopDQoNCmxpYnJhcnkoInRpZHl2ZXJzZSIpDQpsaWJyYXJ5KCJzdGF0Z2wiKQ0KbGlicmFyeSgia2FibGVFeHRyYSIpDQpsaWJyYXJ5KCJsdWJyaWRhdGUiKQ0KbGlicmFyeSgieWFtbCIpDQoNCmxhbmd1YWdlICA8LSBwYXJhbXMkbGFuZw0Kb3B0aW9uICAgIDwtIHBhc3RlMCgiP2xhbmc9IiwgbGFuZ3VhZ2UsICImc2VsZWN0IikNCmxvZ28gICAgICA8LSBwYXN0ZTAoZ2V0d2QoKSwiL2FkZC9sb2dvLmdpZiIpDQp0eHQgICAgICAgPC0gcmVhZF95YW1sKHBhc3RlMChnZXR3ZCgpLCAiL2FkZC90eHQueW1sIiksIGZpbGVFbmNvZGluZyA9ICJJU08tODg1OS0xIikNCnNvdXJjZSAgICA8LSB0eHQkc291cmNlW2xhbmd1YWdlXSAlPiUgdW5saXN0KCkNCg0KeGFyaW5nYW5FeHRyYTo6dXNlX2NsaXBib2FyZCgpDQoNCmBgYA0KDQpgYGB7Y3NzLCBlY2hvID0gRkFMU0V9DQoNCi5hY2NvcmRpb24gew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjOTE5OTAwOw0KICBjb2xvcjogd2hpdGU7DQogIGN1cnNvcjogcG9pbnRlcjsNCiAgcGFkZGluZzogMThweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJvcmRlcjogbm9uZTsNCiAgYm9yZGVyLXJhZGl1czogNXB4Ow0KICB0ZXh0LWFsaWduOiBsZWZ0Ow0KICBvdXRsaW5lOiBub25lOw0KICBmb250LXNpemU6IDE1cHg7DQogIHRyYW5zaXRpb246IDAuNHM7DQp9DQoNCi5hY3RpdmUsIC5hY2NvcmRpb246aG92ZXIgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjk3MjQyOw0KfQ0KDQouYWNjb3JkaW9uOmFmdGVyIHsNCiAgY29udGVudDogJ1wwMDJCJzsNCiAgY29sb3I6ICM3Nzc7DQogIGZvbnQtd2VpZ2h0OiBib2xkOw0KICBmbG9hdDogcmlnaHQ7DQogIG1hcmdpbi1sZWZ0OiA1cHg7DQp9DQoNCi5hY3RpdmU6YWZ0ZXIgew0KICBjb250ZW50OiAiXDIyMTIiOw0KfQ0KDQoucGFuZWwgew0KICBwYWRkaW5nOiAwcHggNXB4IDBweCA1cHg7DQogIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOw0KICBtYXgtaGVpZ2h0OiAwOw0KICBvdmVyZmxvdzogYXV0bzsNCiAgb3ZlcmZsb3cteTogaGlkZGVuOw0KICBvdmVyZmxvdy14OiBhdXRvOw0KICB0cmFuc2l0aW9uOiBtYXgtaGVpZ2h0IDAuMnMgZWFzZS1vdXQ7DQp9DQoNCmRldGFpbHMgew0KICB3aWR0aDogMTAwJTsNCn0NCg0KZGV0YWlscyA+IHN1bW1hcnkgew0KICBwYWRkaW5nOiA0cHggMTJweDsNCiAgd2lkdGg6IDEwMCU7DQogIGJhY2tncm91bmQtY29sb3I6ICMwMDdmOTk7DQogIGJvcmRlcjogc29saWQ7DQogIGJvcmRlci1jb2xvcjogd2hpdGU7DQogIGJvcmRlci1yYWRpdXM6IDVweDsNCiAgY3Vyc29yOiBwb2ludGVyOw0KICBmb250LXNpemU6IDE1cHg7DQogIGNvbG9yOiB3aGl0ZTsNCn0NCg0KZGV0YWlsc1tvcGVuXSA+IHN1bW1hcnkgew0KICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmFhNDFhOw0KfQ0KDQoNCi50aXRsZSB7DQogIGNvbG9yOiAjMWI1NDYzOw0KICBmb250LXNpemU6IDM2cHg7DQp9DQoNCg0KLnBlcnNvbmVyIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDQ0NTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDAuMXB4Ow0KICBwYWRkaW5nLWJvdHRvbTogMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLsO4a29ub21pIHsNCiAgYm94LXNoYWRvdzogM3B4IDNweCA0cHggYmxhY2s7DQogIGJhY2tncm91bmQ6ICMwMDdGOTk7DQogIHBhZGRpbmctcmlnaHQ6IDE1cHg7DQogIHBhZGRpbmctbGVmdDogMTZweDsNCiAgcGFkZGluZy10b3A6IDFweDsNCiAgcGFkZGluZy1ib3R0b206IDAuMXB4Ow0KICBmb250LXNpemU6IDExcHg7DQogIGNvbG9yOiB3aGl0ZTsNCiAgdmVydGljYWwtYWxpZ246IG1pZGRsZTsNCn0NCg0KLnR2w6ZyZ8OlZW5kZSB7DQogIGJveC1zaGFkb3c6IDNweCAzcHggNHB4IGJsYWNrOw0KICBiYWNrZ3JvdW5kOiAjZmFhNDFhOw0KICBwYWRkaW5nLXJpZ2h0OiAxNXB4Ow0KICBwYWRkaW5nLWxlZnQ6IDE2cHg7DQogIHBhZGRpbmctdG9wOiAwLjFweDsNCiAgcGFkZGluZy1ib3R0b206IDFweDsNCiAgZm9udC1zaXplOiAxMXB4Ow0KICBjb2xvcjogd2hpdGU7DQogIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7DQp9DQoNCi5jb250YWluZXIgew0KICB3aWR0aDogaW5oZXJpdDsNCn0NCg0KLnNjcm9sbC0xMDAgew0KICBtYXgtaGVpZ2h0OiAxMDA7DQogIG92ZXJmbG93LXk6IGF1dG87DQogIGJhY2tncm91bmQtY29sb3I6IGluaGVyaXQ7DQp9DQoNCg0KcHJlIHsNCiAgbWF4LWhlaWdodDogMzAwcHg7DQogIG92ZXJmbG93LXk6IGF1dG87DQp9DQoNCnByZVtjbGFzc10gew0KICBtYXgtaGVpZ2h0OiAzMDBweDsNCn0NCg0KYGBgDQoNCjxicj4NCjxicj4NCg0KPGNlbnRlcj4NCg0KLS0tDQogDQojIFtgciB0eHQkU08kdGl0bGVbbGFuZ3VhZ2VdYF17LnRpdGxlfQ0KIA0KLS0tDQo8L2NlbnRlcj4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViMVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAxOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWDAwNiIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWDAwNn0NCg0KU09YMDA2X3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YMDA2IiwgbGFuZyA9IGxhbmd1YWdlKSB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIG11bmljaXBhbGl0eSA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHR5cGUgICAgICAgICA9IHB4X2FsbCgpLA0KICAgIHRpbWUgICAgICAgICA9IHB4X3RvcCgpLA0KICAgIC5jb2xfY29kZSAgICA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KU09YMDA2IDwtIA0KICBTT1gwMDZfcmF3IHw+IA0KICBtdXRhdGUobXVuaWNpcGFsaXR5ID0gbXVuaWNpcGFsaXR5IHw+IGZjdF9pbm9yZGVyKCksDQogICAgICAgICB0eXBlID0gdHlwZSB8PiBmY3RfaW5vcmRlcigpKSB8Pg0KICBzcHJlYWQodHlwZSwgdmFsdWUpIHw+IA0KICBhcnJhbmdlKHVuaXQpIA0KDQpTT1gwMDYgfD4gDQogIHNlbGVjdCgtYygyLCAzKSkgfD4gDQogIHJlbmFtZSgiICIgPSAxKSB8PiANCiAgc3RhdGdsX3RhYmxlKCkgfD4gDQogIHBhY2tfcm93cyhpbmRleCA9IHRhYmxlKFNPWDAwNltbM11dKSkgfD4gDQogIHBhY2tfcm93cyhpbmRleCA9IHRhYmxlKFNPWDAwNlsyXSkpIHw+IA0KICByb3dfc3BlYyhjKDEsIDcpLCBib2xkID0gVCkNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfSBgciBwYXN0ZShzb3VyY2UsICJTT1gwMDYiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxL2IxNmQ2ZGIzLTlmYWItNGRiMi1hMjIyLTA2OTZmYWY4Mzg5NCIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4NCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViMltsYW5ndWFnZV1gIDwvc3VtbWFyeT4gDQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgMjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJTT1hQVjAwNCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWFBWMDA0fQ0KDQpTT1hQVjAwNF9yYXcgPC0gDQogIHN0YXRnbF91cmwoIlNPWFBWMDA0IiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgIG11bmljaXBhbGl0eSA9IHB4X2FsbCgpLA0KICAgIHllYXIgPSBweF90b3AoMSksDQogICAgLmNvbF9jb2RlID0gVFJVRQ0KICApICU+JSANCiAgYXNfdGliYmxlKCkNCg0KDQoNClNPWFBWMDA0X3JhdyAlPiUgDQogIG11dGF0ZShtdW5pY2lwYWxpdHkgPSBtdW5pY2lwYWxpdHkgJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgc3ByZWFkKHllYXIsIHZhbHVlKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcm93X3NwZWMoMSwgYm9sZCA9IFRSVUUpDQoNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIlNPWFBWMDA0IilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8zNWZmMjk4My1lOTI5LTRjYWMtOWE0NS1jZTdhZmQ0NzJjMWYiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KPC9kZXRhaWxzPg0KDQo8ZGV0YWlscz4gPHN1bW1hcnk+IGByIHR4dCRTTyRzdWIzW2xhbmd1YWdlXWAgPC9zdW1tYXJ5PiANCjxicj4NCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCAzOiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWDAwNCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWDAwNH0NCg0KU09YMDA0X3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YMDA0IiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBtdW5pY2lwYWxpdHkgPSBweF9hbGwoKSwNCiAgICB1bml0ICAgICAgICAgPSBweF9hbGwoKSwNCiAgICB0eXBlICAgICAgICAgPSAxMCwNCiAgICB0aW1lICAgICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgICAgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQoNClNPWDAwNCA8LSANCiAgU09YMDA0X3JhdyAlPiUgDQogIG11dGF0ZShtdW5pY2lwYWxpdHkgPSBtdW5pY2lwYWxpdHkgJT4lIGZjdF9pbm9yZGVyKCkpICU+JSANCiAgc3ByZWFkKHVuaXQsIHZhbHVlKSAlPiUgDQogIHVuaXRlKGNvbWJpLCB0eXBlLCB0aW1lLCBzZXAgPSAiLCAiKQ0KDQoNClNPWDAwNCAlPiUgDQogIHNlbGVjdCgtY29tYmkpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1gwMDRbWyJjb21iaSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YMDA0IilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS8xNmRjYTg4Ni0zMjY1LTRkNGYtYjUzOS03NzBmZjE5MTM1N2YiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KPC9kZXRhaWxzPg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjRbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+IA0KPGJyPg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDQ6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiU09YUEVOMSIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIEFMWEFMSzR9DQoNClNPWFBFTjFfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hQRU4xIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUgDQogIHN0YXRnbF9mZXRjaCgNCiAgICBnZW5kZXIgICAgPSBweF9hbGwoKSwNCiAgICBwYXltZW50ICAgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgPSBweF90b3AoKSwNCiAgICAuY29sX2NvZGUgPSBUUlVFDQogICkgJT4lIA0KICBhc190aWJibGUoKQ0KDQoNClNPWFBFTjEgPC0gDQogIFNPWFBFTjFfcmF3ICU+JSANCiAgbXV0YXRlKA0KICAgIGdlbmRlciA9IGdlbmRlciAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBwYXltZW50ID0gcGF5bWVudCAlPiUgZmN0X2lub3JkZXIoKQ0KICApICU+JSANCiAgc3ByZWFkKGdlbmRlciwgdmFsdWUpDQoNClNPWFBFTjEgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1hQRU4xW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KDQpgYGANCjxicj4NClshW10oYHIgbG9nb2Ape3dpZHRoPTQwfWByIHBhc3RlKHNvdXJjZSwgIlNPWFBFTjEiKWBdKGByIHBhc3RlMCgiaHR0cHM6Ly9iYW5rLnN0YXQuZ2w6NDQzL3NxLzBmYTk0YWNlLTk2OWQtNDI5YS04Yjg3LWNhOWNkMmI1ZGFiNyIsIG9wdGlvbilgKXt0YXJnZXQ9Il9ibGFuayJ9DQo8L2Rpdj4gDQoNCjwvZGV0YWlscz4NCg0KPGRldGFpbHM+IDxzdW1tYXJ5PiBgciB0eHQkU08kc3ViNVtsYW5ndWFnZV1gIDwvc3VtbWFyeT4NCjxicj4NCg0KPGJ1dHRvbiBjbGFzcz0iYWNjb3JkaW9uIj4gYHIgcGFzdGUwKCIqKlRhYmVsIDU6ICoqIiwgc3RhdGdsX21ldGEoc3RhdGdsX3VybCgiU09YRk8xMCIsIGxhbmcgPSBsYW5ndWFnZSkpWzFdJHRpdGxlKSBgIDwvYnV0dG9uPiA8ZGl2IGNsYXNzPSJwYW5lbCI+DQoNCmBgYHtyIFNPWEZPMTB9DQoNClNPWEZPMTBfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hGTzEwIiwgbGFuZyA9IGxhbmd1YWdlKSAlPiUNCiAgc3RhdGdsX2ZldGNoKA0KICAgICJhZ2UgZ3JvdXAiID0gcHhfYWxsKCksDQogICAgZ2VuZGVyICAgICAgPSBweF9hbGwoKSwNCiAgICB0aW1lICAgICAgICA9IHB4X3RvcCgxKSwNCiAgICAuY29sX2NvZGUgICA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCg0KDQpTT1hGTzEwIDwtIA0KICBTT1hGTzEwX3JhdyAlPiUgDQogIGZpbHRlcih0aW1lID09IG1heCh0aW1lKSkgJT4lIA0KICBtdXRhdGUoDQogICAgYGFnZSBncm91cGAgPSBgYWdlIGdyb3VwYCAlPiUgZmN0X2lub3JkZXIoKSwNCiAgICBnZW5kZXIgPSBnZW5kZXIgJT4lIGZjdF9pbm9yZGVyKCkNCiAgKSAlPiUgDQogIHNwcmVhZChnZW5kZXIsIHZhbHVlKQ0KDQoNClNPWEZPMTAgJT4lIA0KICBzZWxlY3QoLXRpbWUpICU+JSANCiAgcmVuYW1lKCIgIiA9IDEpICU+JSANCiAgc3RhdGdsX3RhYmxlKCkgJT4lIA0KICBwYWNrX3Jvd3MoaW5kZXggPSBTT1hGTzEwW1sidGltZSJdXSAlPiUgdGFibGUoKSkgJT4lIA0KICByb3dfc3BlYygxLCBib2xkID0gVFJVRSkNCg0KYGBgDQo8YnI+DQpbIVtdKGByIGxvZ29gKXt3aWR0aD00MH1gciBwYXN0ZShzb3VyY2UsICJTT1hGTzEwIilgXShgciBwYXN0ZTAoImh0dHBzOi8vYmFuay5zdGF0LmdsOjQ0My9zcS9lZTFhZGYzMS00NTdjLTQ5YTctOGJjNy01NGEwZTBhOWZjOTAiLCBvcHRpb24pYCl7dGFyZ2V0PSJfYmxhbmsifQ0KPC9kaXY+IA0KDQo8L2RldGFpbHM+DQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjZbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQo8YnV0dG9uIGNsYXNzPSJhY2NvcmRpb24iPiBgciBwYXN0ZTAoIioqVGFiZWwgNjogKioiLCBzdGF0Z2xfbWV0YShzdGF0Z2xfdXJsKCJTT1hCUzAyIiwgbGFuZyA9IGxhbmd1YWdlKSlbMV0kdGl0bGUpIGAgPC9idXR0b24+IDxkaXYgY2xhc3M9InBhbmVsIj4NCmBgYHtyIFNPWEJTMDJ9DQoNClNPWEJTMDJfcmF3IDwtIA0KICBzdGF0Z2xfdXJsKCJTT1hCUzAyIiwgbGFuZyA9IGxhbmd1YWdlKSB8PiANCiAgc3RhdGdsX2ZldGNoKA0KICAgIGRpc3RyaWN0ICA9IHB4X2FsbCgpLA0KICAgIHVuaXQgICAgICA9ICJBbnRhbCIsDQogICAgdGltZSAgICAgID0gcHhfdG9wKDcpLA0KICAgIC5jb2xfY29kZSA9IFQNCiAgKSB8PiANCiAgYXNfdGliYmxlKCkNCg0KU09YQlMwMiA8LSANCiAgU09YQlMwMl9yYXcgfD4gDQogIHNwcmVhZCh0aW1lLCB2YWx1ZSkNCg0KU09YQlMwMiB8PiANCiAgc2VsZWN0KC11bml0KSB8PiANCiAgcmVuYW1lKCIgIiA9IDEpIHw+IA0KICBzdGF0Z2xfdGFibGUoKSB8PiANCiAgcGFja19yb3dzKGluZGV4ID0gdGFibGUoU09YQlMwMlsidW5pdCJdKSkgfD4gDQogIHJvd19zcGVjKDEsIGJvbGQgPSBUKQ0KDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YQlMwMiIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvMzk4OGViYTAtNjc4MC00MzZkLTgxZGEtYmU3M2Y4NzRiMjY3Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2Pg0KPC9kZXRhaWxzPg0KDQoNCjxkZXRhaWxzPiA8c3VtbWFyeT4gYHIgdHh0JFNPJHN1YjdbbGFuZ3VhZ2VdYCA8L3N1bW1hcnk+DQo8YnI+DQoNCjxidXR0b24gY2xhc3M9ImFjY29yZGlvbiI+IGByIHBhc3RlMCgiKipUYWJlbCA3OiAqKiIsIHN0YXRnbF9tZXRhKHN0YXRnbF91cmwoIlNPWE9VMDEiLCBsYW5nID0gbGFuZ3VhZ2UpKVsxXSR0aXRsZSkgYCA8L2J1dHRvbj4gPGRpdiBjbGFzcz0icGFuZWwiPg0KDQpgYGB7ciBTT1hPVTAxfQ0KDQpTT0RPVTAxX3JhdyA8LSANCiAgc3RhdGdsX3VybCgiU09YT1UwMSIsIGxhbmcgPSBsYW5ndWFnZSkgJT4lIA0KICBzdGF0Z2xfZmV0Y2goDQogICAgImludmVudG9yeSB2YXJpYWJsZSIgPSBjKCJBbmRlbDUwIiwgIkFuZGVsNjAiKSwNCiAgICBnZW5kZXIgPSBweF9hbGwoKSwNCiAgICB5ZWFyID0gcHhfdG9wKDEpLA0KICAgIC5jb2xfY29kZSA9IFRSVUUNCiAgKSAlPiUgDQogIGFzX3RpYmJsZSgpDQoNCg0KU09ET1UwMSA8LSANCiAgU09ET1UwMV9yYXcgJT4lIA0KICBtdXRhdGUoYGludmVudG9yeSB2YXJpYWJsZWAgPSBgaW52ZW50b3J5IHZhcmlhYmxlYCAlPiUgZmN0X2lub3JkZXIoKSkgJT4lIA0KICBhcnJhbmdlKGRlc2MoZ2VuZGVyKSkgJT4lIA0KICBtdXRhdGUoZ2VuZGVyID0gZ2VuZGVyICU+JSBmY3RfaW5vcmRlcigpICU+JSBmY3RfcmV2KCkpICU+JSANCiAgc3ByZWFkKGdlbmRlciwgdmFsdWUpDQogIA0KDQpTT0RPVTAxICU+JSANCiAgc2VsZWN0KC15ZWFyKSAlPiUgDQogIHJlbmFtZSgiICIgPSAxKSAlPiUgDQogIHN0YXRnbF90YWJsZSgpICU+JSANCiAgcGFja19yb3dzKGluZGV4ID0gU09ET1UwMVtbInllYXIiXV0gJT4lIHRhYmxlKCkpDQoNCmBgYA0KPGJyPg0KWyFbXShgciBsb2dvYCl7d2lkdGg9NDB9YHIgcGFzdGUoc291cmNlLCAiU09YT1UwMSIpYF0oYHIgcGFzdGUwKCJodHRwczovL2Jhbmsuc3RhdC5nbDo0NDMvc3EvYzdiYzlkNGItNGM5Ny00NjJkLWJiZDMtMjdjOTY4ZmM0MDU4Iiwgb3B0aW9uKWApe3RhcmdldD0iX2JsYW5rIn0NCjwvZGl2PiANCg0KPC9kZXRhaWxzPg0KDQoNCjxociBzdHlsZT0iYm9yZGVyOjFweCByaWRnZSBsaWdodGdyYXkiPiA8L2hyPg0KPGNlbnRlcj4gPHNwYW4gc3R5bGU9J2NvbG9yOiNEM0QzRDM7IGZvbnQtc2l6ZTo5MCU7Jz4gYHIgcGFzdGUodHh0JHVwZGF0ZVtsYW5ndWFnZV0sIGZvcm1hdChTeXMuRGF0ZSgpLCAiJWQuICVCICVZIikpYCA8L3NwYW4+IDwvY2VudGVyPg0KDQoNCg0KDQo8c2NyaXB0Pg0KdmFyIGFjYyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoImFjY29yZGlvbiIpOw0KdmFyIGk7DQoNCmZvciAoaSA9IDA7IGkgPCBhY2MubGVuZ3RoOyBpKyspIHsNCiAgYWNjW2ldLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgZnVuY3Rpb24oKSB7DQogICAgdGhpcy5jbGFzc0xpc3QudG9nZ2xlKCJhY3RpdmUiKTsNCiAgICB2YXIgcGFuZWwgPSB0aGlzLm5leHRFbGVtZW50U2libGluZzsNCiAgICBpZiAocGFuZWwuc3R5bGUubWF4SGVpZ2h0KSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBudWxsOw0KICAgIH0gZWxzZSB7DQogICAgICBwYW5lbC5zdHlsZS5tYXhIZWlnaHQgPSBwYW5lbC5zY3JvbGxIZWlnaHQgKyAicHgiOw0KICAgIH0gDQogIH0pOw0KfQ0KPC9zY3JpcHQ+DQoNCg0K